/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2025-06-27     chenlei       the first version
 */
#ifndef APPLICATIONS_INC_UART_APP_H_
#define APPLICATIONS_INC_UART_APP_H_

#include "head.h"

#define USART2_NAME       "uart2"    /* 串口2设备名称 */
#define USART3_NAME       "uart3"    /* 串口2设备名称 */
//k230数据帧格式
#define K230DATA_HEAD       0xAA                // 帧头标识
#define K230DATA_TAIL       0xFF                // 帧尾标识
#define K230DATA_LEN        9                   // 固定数据长度（不含头尾）
#define K230BUFFER_SIZE     (K230DATA_LEN + 2)  // 完整帧长度
//eg800k数据帧格式
#define EG800K_HEAD       0xAA                  // 帧头标识
#define EG800K_TAIL       0xFF                  // 帧尾标识
#define FIXED_DATA_LEN   9                      // 固定数据长度
#define CMD_LOCK         "lock"                 // 锁定命令
#define CMD_UNLOCK       "unlock"               // 解锁命令
#define MAX_FRAME_LEN    (FIXED_DATA_LEN + 2)   // 最大帧长度

//接收数据状态机状态
enum PROC_DATA_STATE
{
    STATE_WAIT_HEAD,   // 等待帧头
    STATE_RECV_DATA,   // 接收数据
    STATE_CHECK_TAIL   // 校验帧尾
};


int uart2_init(void);
int uart3_init(void);
void set_right_car_flag(void);
uint8_t get_right_car_flag(void);

#endif /* APPLICATIONS_INC_UART_APP_H_ */


